from typing import List, Dict, Any, Optional
from pydantic import BaseModel


class SecondBargainingRequest(BaseModel):
    """
            ----------------------------------包装Request对象---------------------------------------
                用于对前端传过来的json数据校验，看是否符合格式要求，以及一些默认值的设置
                不懂的看fastapi-pydantic
            ---------------------------------------------------------------------------------------
    """
    """
            ----------------------------------参数示例（json）---------------------------------------
{
  "form": {
    "达人昵称": "EC7",
    "达人主页链接": "https://www.xiaohongshu.com/user/profile/5fb755d5000000000101e4c2",
    "品牌/产品名称": "特步一体成型",
    "产品品类": "时尚鞋服",
    "推广周期": "2024-11-01至2024-11-20",
    "投放形式": "视频报备",
    "报备图文价格": "无",
    "报备视频价格": "23000",
    "是否可以保价到次月": "是",
    "折扣要求": "24%",
    "创作方向": "种草",
    "排竞要求": "前15后15",
    "寄样方式": "寄拍",
    "达人鞋服尺码": "鞋35码",
    "免费展示套数及加价": "不限",
    "可保阅读数据": "视频保底1万播放",
    "可保互动数据": "点赞+评论≥400",
    "是否可以免费授权品牌信息流 6 个月？": "3个月",
    "是否可以免费授权品牌二剪及全平台传播（包括电商）6 个月？": "可以",
    "是否可以免费分发其他平台？": "抖音",
    "是否有特殊合作注意事项？（如广告占比要求、脚本修改次数等）": "无",
    "是否免费授权电商平台植入 6 个月？": "可以",
    "是否授权搜索引导6 个月？": "可以",
    "是否授权带相关话题6 个月？": "可以",
    "是否授权组件需求6 个月？": "可以",
    "是否授权引流需求6 个月？": "可以"
  },
  "conversations": [
    {
      "role": "assistant",
      "content": "1.达人昵称:EC7\n2.达人主页链接:https://www.xiaohongshu.com/user/profile/5fb755d5000000000101e4c2\n3.品牌/产品名称:特步一体成型\n4.产品品类:时尚鞋服\n5.推广周期:（11月12日前发布）\n6.投放形式:（视频报备）\n7.报备图文价格:（例：23000元）\n8.报备视频价格:（例：29000元）\n9.是否可以保价到次月:（例：是/否）\n10.折扣要求:（33%）\n11.创作方向:单品种草\n12.排竞要求:（前后15）\n13.寄样方式:寄拍\n14.达人鞋服尺码:（例：上衣M码，裤子27码，西装需M码）\n15.免费展示套数及加价:（例：最多免费展示3套搭配，超套每套加200元）\n16.可保阅读数据:（例：视频保底1万播放，图文保底7000阅读）\n17.可保互动数据:（例：点赞+评论≥400）\n18.是否可以免费授权品牌信息流 6 个月？:\n19.是否可以免费授权品牌二剪及全平台传播（包括电商）6 个月？:（例：可以）\n20.是否可以免费分发其他平台？:（例：可以同步至抖音）\n21.是否有特殊合作注意事项？（如广告占比要求、脚本修改次数等）:（例：广告占比≤25%，脚本初稿可修改2次）\n22.是否免费授权电商平台植入 6 个月？:\n23.是否授权搜索引导6 个月？:\n24.是否授权带相关话题6 个月？:\n25.是否授权组件需求6 个月？:\n26.是否授权引流需求6 个月？:"
    },
    {
      "role": "user",
      "content": "1.达人昵称:EC7\n2.达人主页链接:https://www.xiaohongshu.com/user/profile/5fb755d5000000000101e4c2\n3.品牌/产品名称:特步一体成型\n4.产品品类:时尚鞋服\n5.推广周期:11月5日前发布\n6.投放形式:视频报备\n7.报备图文价格:无\n8.报备视频价格:23000\n9.是否可以保价到次月:是\n10.折扣要求:22\n11.创作方向:单品种草\n12.排竞要求:前15后15\n13.寄样方式:寄拍\n14.达人鞋服尺码:鞋35码\n15.免费展示套数及加价:不限\n16.可保阅读数据:视频保底1万播放\n17.可保互动数据:点赞+评论≥400\n18.是否可以免费授权品牌信息流 6 个月？3个月\n19.是否可以免费授权品牌二剪及全平台传播（包括电商）6 个月？:可以\n20.是否可以免费分发其他平台？:抖音\n21.是否有特殊合作注意事项？（如广告占比要求、脚本修改次数等）:无\n22.是否免费授权电商平台植入 6 个月？:可以\n23.是否授权搜索引导6 个月？:可以\n24.是否授权带相关话题6 个月？:可以\n25.是否授权组件需求6 个月？:可以\n26.是否授权引流需求6 个月？:可以"
    },
    {
      "role": "assistant",
      "content": "收到，不过宝子哈，返点如果能高一些，我们这边能帮你争取到更多合作机会和资源～你看能不能再调整下呢？"
    },
    {
      "role": "user",
      "content": "23吧"
    }
    // ,
    // {
    //   "role": "assistant",
    //   "content": "宝子哈，返点如果能高一些，我们这边能帮你争取到更多合作机会和资源～你看能不能再调整下呢？"
    // },
    // {
    //   "role": "user",
    //   "content": "行，折扣就33%吧"
    // }
  ],
  "status": "1",
  "category": "",
  "subcategory": "博主权益落实中",
  "cooperation_status": "沟通中",
  "is_first": 1
}
            ---------------------------------------------------------------------------------------
    """

    form: Dict[str, Any] = {}  # 存放用户表单信息
    conversations: List[Dict[str, str]]
    status: str = "1"
    category: str = "无"  # 拒绝原因
    subcategory: Optional[str] = ""  # 小类
    cooperation_status: Optional[str] = ""  # 合作状态大类 (确认合作 已拒品 沟通中)
    is_first: int = 0
    is_submit: int = 0  # 用户是不是已经填完表单，完整性校验也过了，填过为1，没过为0
    empty_info: List[str] = []  # 哪些信息没填
    diff_info: List[str] = []  # 哪些信息有差异
